package com.ck.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartHttpServletRequest;

import com.ck.domain.Chapter;
import com.ck.domain.Panduan;
import com.ck.domain.Subject;
import com.ck.domain.Tiankong;
import com.ck.domain.Xuanze;
import com.ck.domain.Zhuguan;

public interface QuestionService {
	
	public List<Subject> gainSubjectList();
	public Subject gainSubject(Integer id);
	public Subject gainSubject(String name);
	public boolean addNewSubject(Subject subject, Map model);
	public boolean editSubjectInfo(Subject subject, Map model);
	
	public List<Chapter> gainChapterList();
	public List<Chapter> gainChapterBySubject(Integer subject_id);
	public Chapter gainChapter(Integer id);
	public Chapter gainChapter(String name);
	public boolean addNewChapter(Chapter chapter, Map model);
	public boolean editChapterInfo(Chapter chapter, Map model);
	
	public String uploadImage(MultipartHttpServletRequest multipartRequest, Map model);
	public String showImage(HttpServletRequest request, String pic);
	
	public List<Panduan> gainPanduanList();
	public Panduan gainPanduan(Integer id);
	public List<Panduan> gainPanduanByChapter(Integer chapter_id);
	public boolean addNewPanduan(Panduan panduan, Map model);
	public boolean editPanduanInfo(MultipartHttpServletRequest multipartRequest, Panduan panduan, Map model);
	public boolean removePanduanImage(HttpServletRequest request, Panduan panduan, Map model);
	public List<Panduan> gainPanduanForExercise(Panduan panduan, Map model);
	
	public List<Xuanze> gainXuanzeList();
	public Xuanze gainXuanze(Integer id);
	public List<Xuanze> gainXuanzeByChapter(Integer chapter_id);
	public boolean addNewXuanze(Xuanze xuanze, Map model);
	public boolean editXuanzeInfo(MultipartHttpServletRequest multipartRequest, Xuanze xuanze, Map model);
	public boolean removeXuanzeImage(HttpServletRequest request, Xuanze xuanze, Map model);
	public List<Xuanze> gainXuanzeForExercise(Xuanze xuanze, Map model);
	
	public List<Tiankong> gainTiankongList();
	public Tiankong gainTiankong(Integer id);
	public List<Tiankong> gainTiankongByChapter(Integer chapter_id);
	public boolean addNewTiankong(Tiankong tiankong, Map model);
	public boolean editTiankongInfo(MultipartHttpServletRequest multipartRequest, Tiankong tiankong, Map model);
	public boolean removeTiankongImage(HttpServletRequest request, Tiankong tiankong, Map model);
	public List<Tiankong> gainTiankongForExercise(Tiankong tiankong, Map model);
	
	public List<Zhuguan> gainZhuguanList();
	public Zhuguan gainZhuguan(Integer id);
	public List<Zhuguan> gainZhuguanByChapter(Integer chapter_id);
	public boolean addNewZhuguan(Zhuguan zhuguan, Map model);
	public boolean editZhuguanInfo(MultipartHttpServletRequest multipartRequest, Zhuguan zhuguan, Map model);
	public boolean removeZhuguanImage(HttpServletRequest request, Zhuguan zhuguan, Map model);

}
